Today's computer systems, in particular personal computer systems, comprise sophisticated operating systems which are usually loaded from a hard disk during a boot procedure. These so-called boot images are usually stored on a system hard disk or in some applications on CDROM drives. Such operating systems do not load every routine into the memory of the computer system as some parts of the operating system are only used infrequently or for reasons to save system memory for applications, etc. Modern operating systems often update themselves upon interaction with a user or based on internal procedures. Such an update is usually stored on the respective system hard disk to keep the changes permanently stored and available on the next session. These updates can be critical or even unwanted in some applications. Furthermore, there are applications for personal computers, which require the ability to write protect a storage device which contains a bootable part for the operating system under normal operating conditions. For many different reasons a write protection is therefore necessary.
For example, if a bootable part is provided by a CDROM drive, every attempt to write to the CDROM will naturally fail and generate a respective error message. Thus, for example, in the WINDOWS NT® Embedded 4.0 product from the MICROSOFT® corporation, a write filter device driver is provided primarily for the purpose of supporting boot images on CDROM devices. While such a filter can be used with any kind of storage device it is often too limiting for many applications. An application which requires a high level of security and therefore a write protection, for example, is a Thin client. In particular during normal operation, such a system is desired to be write protected. However, such a system also needs some mechanism to allow an administrator to configure the operating system and thus permanently modify the boot image.
Another limitation of the Microsoft® write filter includes a dependence upon available memory resources. Since these kind of operating systems require the ability to dynamically modify and expand many operating systems and application specific files, it requires the filter in effect to make the storage device appear to be read/write media with adequate free space available to the file system. Once all available memory is consumed, the operating system will fail since it can no longer store newly modified data.